/**
 * Created by JetBrains PhpStorm. User: taoqili Date: 12-1-30 Time: 下午12:50 To
 * change this template use File | Settings | File Templates.
 */
var wordImage = {};
// (function(){
var g = baidu.g, flashObj, flashContainer;

wordImage.init = function(opt, callbacks) {
	showLocalPath("localPath");
	// createCopyButton("clipboard","localPath");
	createFlashUploader(opt, callbacks);
	addUploadListener();
	addOkListener();
};

function hideFlash() {
	flashObj = null;
	flashContainer.innerHTML = "";
}
function addOkListener() {
	dialog.onok = function() {
		if (!imageUrls.length)
			return;
		var urlPrefix = editor.getOpt('imageUrlPrefix'), images = domUtils
				.getElementsByTagName(editor.document, "img");
		editor.fireEvent('saveScene');
		for (var i = 0, img; img = images[i++];) {
			var src = img.getAttribute("word_img");
			if (!src)
				continue;
			for (var j = 0, url; url = imageUrls[j++];) {
				if (src.indexOf(url.original.replace(" ", "")) != -1) {
					img.src = urlPrefix + url.url;
					img.setAttribute("_src", urlPrefix + url.url); // 同时修改"_src"属性
					img.setAttribute("title", url.title);
					domUtils.removeAttributes(img, [ "word_img", "style",
							"width", "height" ]);
					editor.fireEvent("selectionchange");
					break;
				}
			}
		}
		editor.fireEvent('saveScene');
		hideFlash();
	};
	dialog.oncancel = function() {
		hideFlash();
	}
}

/**
 * 绑定开始上传事件
 */
function addUploadListener() {
	g("upload").onclick = function() {
		flashObj.upload();
		this.style.display = "none";
	};
}

function showLocalPath(id) {
	// 单张编辑
	var img = editor.selection.getRange().getClosedNode();
	var images = editor.execCommand('wordimage');
	if (images.length == 1 || img && img.tagName == 'IMG') {
		g(id).value = images[0];
		return;
	}
	var path = images[0];
	var leftSlashIndex = path.lastIndexOf("/") || 0, // 不同版本的doc和浏览器都可能影响到这个符号，故直接判断两种
	rightSlashIndex = path.lastIndexOf("\\") || 0, separater = leftSlashIndex > rightSlashIndex ? "/"
			: "\\";

	path = path.substring(0, path.lastIndexOf(separater) + 1);
	g(id).value = path;
}

function createFlashUploader(opt, callbacks) {
	// 由于lang.flashI18n是静态属性，不可以直接进行修改，否则会影响到后续内容
	var i18n = utils.extend({}, lang.flashI18n);
	// 处理图片资源地址的编码，补全等问题
	for ( var i in i18n) {
		if (!(i in {
			"lang" : 1,
			"uploadingTF" : 1,
			"imageTF" : 1,
			"textEncoding" : 1
		}) && i18n[i]) {
			i18n[i] = encodeURIComponent(editor.options.langPath
					+ editor.options.lang + "/images/" + i18n[i]);
		}
	}
	opt = utils.extend(opt, i18n, false);
	var option = {
		createOptions : {
			id : 'flash',
			url : opt.flashUrl,
			width : opt.width,
			height : opt.height,
			errorMessage : lang.flashError,
			wmode : browser.safari ? 'transparent' : 'window',
			ver : '10.0.0',
			vars : opt,
			container : opt.container
		}
	};

	option = extendProperty(callbacks, option);
	flashObj = new baidu.flash.imageUploader(option);
	flashContainer = $G(opt.container);
}

function extendProperty(fromObj, toObj) {
	for ( var i in fromObj) {
		if (!toObj[i]) {
			toObj[i] = fromObj[i];
		}
	}
	return toObj;
}

// })();

function getPasteData(id) {
	baidu.g("msg").innerHTML = lang.copySuccess + "</br>";
	setTimeout(function() {
		baidu.g("msg").innerHTML = "";
	}, 5000);
	return baidu.g(id).value;
}

function createCopyButton(id, dataFrom) {
	baidu.swf.create({
		id : "copyFlash",
		url : "fClipboard_ueditor.swf",
		width : "58",
		height : "25",
		errorMessage : "",
		bgColor : "#CBCBCB",
		wmode : "transparent",
		ver : "10.0.0",
		vars : {
			tid : dataFrom
		}
	}, id);

	var clipboard = baidu.swf.getMovie("copyFlash");
	var clipinterval = setInterval(function() {
		if (clipboard && clipboard.flashInit) {
			clearInterval(clipinterval);
			clipboard.setHandCursor(true);
			clipboard.setContentFuncName("getPasteData");
			// clipboard.setMEFuncName("mouseEventHandler");
		}
	}, 500);
}
createCopyButton("clipboard", "localPath");